#include <iostream>
#include<string>

#include <iostream>
#include <stack>
using namespace std;

//int main() {
//    string s;
//    cin >> s;
//    int a, b;
//    cin >> a >> b;
//    int count = 0;
//    for (int i = a; a <= b; i++)
//    {
//        int n = i;
//        while (n)
//        {
//            int c = (n %= 10);
//            if (c == 2) count++;
//            n /= 10;
//        }
//    }
//    printf("%d", count);
//    return 0;
//}
//
//
//#include <unordered_map>
//class Solution {
//public:
//
//    vector<int> intersection(vector<int>& nums1, vector<int>& nums2) {
//        unordered_map<int, int> hash1;
//        unordered_map<int, int> hash2;
//        vector<int>  ret;
//        for (int i = 0; i < nums1.size(); i++)
//        {
//            auto ret = hash2.find(nums1[i]);
//            if (*ret->second )
//        }
//        return ret;
//    }
//};
//
//
//
//using namespace std;

int main() 
{
        string s;
        string ret = "";
        cin >> s;
        stack<char> st;
        st.push(s[1]);
        for (int i = 1; i < s.size(); i++)
        {
            if (s[i] == st.top()) st.pop();
            else st.push(s[i]);
        }
        if (st.empty()) return 0;
        else
            while (!st.empty())
            {
                ret += st.top();
                st.pop();
            }
        ret.reserve();
        char* retsult = ret.c_str();

        }

    return 0;

}